home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ham Radio 2000
/
Ham Radio 2000.iso
/
ham2000
/
misc
/
dspice0s
/
dmpmat.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-11-21
|
14KB
|
381 lines
/* dmpmat.f -- translated by f2c (version of 3 February 1990 3:36:42).
You must link the resulting object file with the libraries:
-lF77 -lI77 -lm -lc (in that order)
*/
#include "f2c.h"
/* Common Block Declarations */
struct {
integer ielmnt, isbckt, nsbckt, iunsat, nunsat, itemps, numtem, isens,
nsens, ifour, nfour, ifield, icode, idelim, icolum, insize,
junode, lsbkpt, numbkp, iorder, jmnode, iur, iuc, ilc, ilr,
numoff, isr, nmoffc, iseq, iseq1, neqn, nodevs, ndiag, iswap,
iequa, macins, lvnim1, lx0, lvn, lynl, lyu, lyl, lx1, lx2, lx3,
lx4, lx5, lx6, lx7, ld0, ld1, ltd, imynl, imvn, lcvn, nsnod,
nsmat, nsval, icnod, icmat, icval, loutpt, lpol, lzer, irswpf,
irswpr, icswpf, icswpr, irpt, jcpt, irowno, jcolno, nttbr, nttar,
lvntmp;
} tabinf_;
#define tabinf_1 tabinf_
struct {
doublereal atime, aprog[3], adate, atitle[10], defl, defw, defad, defas,
rstats[50];
integer iwidth, lwidth, nopage;
} miscel_;
#define miscel_1 miscel_
struct {
doublereal achar, afield[15], oldlin[15];
integer kntrc, kntlim;
} line_;
#define line_1 line_
struct {
integer locate[50], jelcnt[50], nunods, ncnods, numnod, nstop, nut, nlt,
nxtrm, ndist, ntlin, ibr, numvs, numalt, numcyc;
} cirdat_;
#define cirdat_1 cirdat_
struct {
doublereal vto, beta, gamma, phi, phib, cox, xnsub, xnfs, xd, xj, xld,
xlamda, uo, uexp, vbp, utra, vmax, xneff, xl, xw, vbi, von, vdsat,
qspof, beta0, beta1, cdrain, xqco, xqc, fnarrw, fshort;
integer lev;
} mosarg_;
#define mosarg_1 mosarg_
struct {
doublereal omega, time, delta, delold[7], ag[7], vt, xni, egfet, xmu,
sfactr;
integer mode, modedc, icalc, initf, method, iord, maxord, noncon, iterno,
itemno, nosolv, modac, ipiv, ivmflg, ipostp, iscrch, iofile;
} status_;
#define status_1 status_
struct {
integer iprnta, iprntl, iprntm, iprntn, iprnto, limtim, limpts, lvlcod,
lvltim, itl1, itl2, itl3, itl4, itl5, itl6, igoof, nogo, keof;
} flags_;
#define flags_1 flags_
struct {
doublereal twopi, xlog2, xlog10, root2, rad, boltz, charge, ctok, gmin,
reltol, abstol, vntol, trtol, chgtol, eps0, epssil, epsox, pivtol,
pivrel;
} knstnt_;
#define knstnt_1 knstnt_
struct {
doublereal cpyknt;
integer istack[1], lorg, icore, maxcor, maxuse, memavl, ldval, numblk,
loctab, ltab, ifwa, nwoff, ntab, maxmem, memerr, nwd4, nwd8,
nwd16;
} memmgr_;
#define memmgr_1 memmgr_
struct {
doublereal tcstar[2], tcstop[2], tcincr[2];
integer icvflg, itcelm[2], kssop, kinel, kidin, kovar, kidout;
} dc_;
#define dc_1 dc_
struct {
doublereal fstart, fstop, fincr, skw2, refprl, spw2;
integer jacflg, idfreq, inoise, nosprt, nosout, nosin, idist, idprt;
} ac_;
#define ac_1 ac_
struct {
doublereal tstep, tstop, tstart, delmax, tdmax, forfre;
integer jtrflg;
} tran_;
#define tran_1 tran_
struct {
doublereal xincr, string[15], xstart, yvar[8];
integer itab[8], itype[8], ilogy[8], npoint, numout, kntr, numdgt;
} outinf_;
#define outinf_1 outinf_
struct {
integer maxtim, itime, icost;
} cje_;
#define cje_1 cje_
struct {
integer idebug[20];
} debug_;
#define debug_1 debug_
struct {
doublereal value[200000];
} blank_;
#define blank_1 blank_
/* Table of constant values */
static integer c__1 = 1;
/*< subroutine dmpmat(anam) >*/
/* Subroutine */ int dmpmat_(anam)
doublereal *anam;
{
/* Format strings */
static char fmt_10[] = "(\0020*debug*: dmpmt called by \002,a8,/,\002 *\
debug*: mode, mdc, time, delta, icalc, itr#, initf,\002,\002 piv, ord, ncon\
, igoof, nogo =\002,/,\002 *debug*: \002,2i5,1p2d10.2,8i5)";
static char fmt_16[] = "(\002 *debug*: nstop, nttbr, size(irpt) = \002,\
3i6,/,\002 *debug*: index irpt irow jcol jcpt value\002,10x,\002\
index irpt irow jcol jcpt value\002)";
static char fmt_26[] =
"(\002 *debug*: \002,5i6,1pd12.4,10x,5i6,1pd12.4)";
static char fmt_71[] = "(\002 *debug*: irswpf = \002,18i6)";
static char fmt_76[] = "(\002 *debug*: irswpr = \002,18i6)";
static char fmt_81[] = "(\002 *debug*: icswpf = \002,18i6)";
static char fmt_86[] = "(\002 *debug*: icswpr = \002,18i6)";
/* System generated locals */
integer i_1;
/* Builtin functions */
integer s_wsfe(), do_fio(), e_wsfe();
/* Local variables */
static integer i, j, irpts, istop;
#define nodplc ((integer *)&blank_1)
#define cvalue ((complex *)&blank_1)
extern /* Subroutine */ int dmpmem_(), sizmem_();
/* Fortran I/O blocks */
static cilist io__3 = { 0, 0, 0, fmt_10, 0 };
static cilist io__5 = { 0, 0, 0, fmt_16, 0 };
static cilist io__9 = { 0, 0, 0, fmt_26, 0 };
static cilist io__10 = { 0, 0, 0, fmt_71, 0 };
static cilist io__11 = { 0, 0, 0, fmt_76, 0 };
static cilist io__12 = { 0, 0, 0, fmt_81, 0 };
static cilist io__13 = { 0, 0, 0, fmt_86, 0 };
/*< implicit double precision (a-h,o-z) >*/
/* this routine dumps out the matrix and associated pointers. */
/* spice version 2g.6 sccsid=tabinf 3/15/83 */
/*< common /tabinf/ ielmnt,isbckt,nsbckt,iunsat,nunsat,itemps,numtem, >*/
/*< 1 isens,nsens,ifour,nfour,ifield,icode,idelim,icolum,insize, >*/
/*< 2 junode,lsbkpt,numbkp,iorder,jmnode,iur,iuc,ilc,ilr,numoff,isr, >*/
/*< 3 nmoffc,iseq,iseq1,neqn,nodevs,ndiag,iswap,iequa,macins,lvnim1, >*/
/*< 4 lx0,lvn,lynl,lyu,lyl,lx1,lx2,lx3,lx4,lx5,lx6,lx7,ld0,ld1,ltd, >*/
/*< 5 imynl,imvn,lcvn,nsnod,nsmat,nsval,icnod,icmat,icval, >*/
/*< 6 loutpt,lpol,lzer,irswpf,irswpr,icswpf,icswpr,irpt,jcpt, >*/
/*< 7 irowno,jcolno,nttbr,nttar,lvntmp >*/
/* spice version 2g.6 sccsid=miscel 3/15/83 */
/*< common /miscel/ atime,aprog(3),adate,atitle(10),defl,defw,defad, >*/
/*< 1 defas,rstats(50),iwidth,lwidth,nopage >*/
/* spice version 2g.6 sccsid=line 3/15/83 */
/*< common /line/ achar,afield(15),oldlin(15),kntrc,kntlim >*/
/* spice version 2g.6 sccsid=cirdat 3/15/83 */
/*< common /cirdat/ locate(50),jelcnt(50),nunods,ncnods,numnod,nstop, >*/
/*< 1 nut,nlt,nxtrm,ndist,ntlin,ibr,numvs,numalt,numcyc >*/
/* spice version 2g.6 sccsid=mosarg 3/15/83 */
/*< common /mosarg/ vto,beta,gamma,phi,phib,cox,xnsub,xnfs,xd,xj,xld, >*/
/*< 1 xlamda,uo,uexp,vbp,utra,vmax,xneff,xl,xw,vbi,von,vdsat,qspof, >*/
/*< 2 beta0,beta1,cdrain,xqco,xqc,fnarrw,fshort,lev >*/
/* spice version 2g.6 sccsid=status 3/15/83 */
/*< common /status/ omega,time,delta,delold(7),ag(7),vt,xni,egfet, >*/
/*< 1 xmu,sfactr,mode,modedc,icalc,initf,method,iord,maxord,noncon, >*/
/*< 2 iterno,itemno,nosolv,modac,ipiv,ivmflg,ipostp,iscrch,iofile >*/
/* spice version 2g.6 sccsid=flags 3/15/83 */
/*< common /flags/ iprnta,iprntl,iprntm,iprntn,iprnto,limtim,limpts, >*/
/*< 1 lvlcod,lvltim,itl1,itl2,itl3,itl4,itl5,itl6,igoof,nogo,keof >*/
/* spice version 2g.6 sccsid=knstnt 3/15/83 */
/*< common /knstnt/ twopi,xlog2,xlog10,root2,rad,boltz,charge,ctok, >*/
/*< 1 gmin,reltol,abstol,vntol,trtol,chgtol,eps0,epssil,epsox, >*/
/*< 2 pivtol,pivrel >*/
/* spice version 2g.6 sccsid=memmgr 3/15/83 */
/*< common /memmgr/ cpyknt,istack(1),lorg,icore,maxcor,maxuse,memavl, >*/
/*< 1 ldval,numblk,loctab,ltab,ifwa,nwoff,ntab,maxmem,memerr,nwd4, >*/
/*< 2 nwd8,nwd16 >*/
/* spice version 2g.6 sccsid=dc 3/15/83 */
/*< common /dc/ tcstar(2),tcstop(2),tcincr(2),icvflg,itcelm(2),kssop, >*/
/*< 1 kinel,kidin,kovar,kidout >*/
/* spice version 2g.6 sccsid=ac 3/15/83 */
/*< common /ac/ fstart,fstop,fincr,skw2,refprl,spw2,jacflg,idfreq, >*/
/*< 1 inoise,nosprt,nosout,nosin,idist,idprt >*/
/* spice version 2g.6 sccsid=tran 3/15/83 */
/*< common /tran/ tstep,tstop,tstart,delmax,tdmax,forfre,jtrflg >*/
/* spice version 2g.6 sccsid=outinf 3/15/83 */
/*< common /outinf/ xincr,string(15),xstart,yvar(8),itab(8),itype(8), >*/
/*< 1 ilogy(8),npoint,numout,kntr,numdgt >*/
/* spice version 2g.6 sccsid=cje 3/15/83 */
/*< common /cje/ maxtim,itime,icost >*/
/* spice version 2g.6 sccsid=debug 3/15/83 */
/*< common/debug/ idebug(20) >*/
/* spice version 2g.6 sccsid=blank 3/15/83 */
/*< common /blank/ value(200000) >*/
/*< integer nodplc(64) >*/
/*< complex cvalue(32) >*/
/*< equivalence (value(1),nodplc(1),cvalue(1)) >*/
/*< write (iofile,10) anam,mode,modedc, >*/
/*< 1 time,delta,icalc,iterno,initf,ipiv,iord,noncon,igoof,nogo >*/
io__3.ciunit = status_1.iofile;
s_wsfe(&io__3);
do_fio(&c__1, (char *)&(*anam), (ftnlen)sizeof(doublereal));
do_fio(&c__1, (char *)&status_1.mode, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&status_1.modedc, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&status_1.time, (ftnlen)sizeof(doublereal));
do_fio(&c__1, (char *)&status_1.delta, (ftnlen)sizeof(doublereal));
do_fio(&c__1, (char *)&status_1.icalc, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&status_1.iterno, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&status_1.initf, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&status_1.ipiv, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&status_1.iord, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&status_1.noncon, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&flags_1.igoof, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&flags_1.nogo, (ftnlen)sizeof(integer));
e_wsfe();
/*< 10 format('0*debug*: dmpmt called by ',a8,/, >*/
/*< 1 ' *debug*: mode, mdc, time, delta, icalc, itr#, initf,', >*/
/*< 2 ' piv, ord, ncon, igoof, nogo =',/, >*/
/*< 3 ' *debug*: ',2i5,1p2d10.2,8i5) >*/
/*< call dmpmem(5hdmpmt) >*/
dmpmem_("dmpmt", 5L);
/* dump out the *whole* thing */
/*< call sizmem(irpt,irpts) >*/
sizmem_(&tabinf_1.irpt, &irpts);
/*< write (iofile,16) nstop,nttbr,irpts >*/
io__5.ciunit = status_1.iofile;
s_wsfe(&io__5);
do_fio(&c__1, (char *)&cirdat_1.nstop, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&tabinf_1.nttbr, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&irpts, (ftnlen)sizeof(integer));
e_wsfe();
/*< 16 format(' *debug*: nstop, nttbr, size(irpt) = ',3i6,/, >*/
/*< 1 ' *debug*: index irpt irow jcol jcpt value', >*/
/*< 2 10x,' index irpt irow jcol jcpt value') >*/
/*< j=(irpts+1)/2 >*/
j = (irpts + 1) / 2;
/*< istop=j >*/
istop = j;
/*< do 30 i=1,istop >*/
i_1 = istop;
for (i = 1; i <= i_1; ++i) {
/*< j=j+1 >*/
++j;
/*< write (iofile,26) >*/
/*< 1 i,nodplc(irpt+i),nodplc(irowno+i),nodplc(jcolno+i), >*/
/*< 2 nodplc(jcpt+i),value(lvn+i), >*/
/*< 3 j,nodplc(irpt+j),nodplc(irowno+j),nodplc(jcolno+j), >*/
/*< 4 nodplc(jcpt+j),value(lvn+j) >*/
io__9.ciunit = status_1.iofile;
s_wsfe(&io__9);
do_fio(&c__1, (char *)&i, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&nodplc[tabinf_1.irpt + i - 1], (ftnlen)sizeof(
integer));
do_fio(&c__1, (char *)&nodplc[tabinf_1.irowno + i - 1], (ftnlen)
sizeof(integer));
do_fio(&c__1, (char *)&nodplc[tabinf_1.jcolno + i - 1], (ftnlen)
sizeof(integer));
do_fio(&c__1, (char *)&nodplc[tabinf_1.jcpt + i - 1], (ftnlen)sizeof(
integer));
do_fio(&c__1, (char *)&blank_1.value[tabinf_1.lvn + i - 1], (ftnlen)
sizeof(doublereal));
do_fio(&c__1, (char *)&j, (ftnlen)sizeof(integer));
do_fio(&c__1, (char *)&nodplc[tabinf_1.irpt + j - 1], (ftnlen)sizeof(
integer));
do_fio(&c__1, (char *)&nodplc[tabinf_1.irowno + j - 1], (ftnlen)
sizeof(integer));
do_fio(&c__1, (char *)&nodplc[tabinf_1.jcolno + j - 1], (ftnlen)
sizeof(integer));
do_fio(&c__1, (char *)&nodplc[tabinf_1.jcpt + j - 1], (ftnlen)sizeof(
integer));
do_fio(&c__1, (char *)&blank_1.value[tabinf_1.lvn + j - 1], (ftnlen)
sizeof(doublereal));
e_wsfe();
/*< 26 format(' *debug*: ',5i6,1pd12.4,10x,5i6,1pd12.4) >*/
/*< 30 continue >*/
/* L30: */
}
/* c 51 format(" *debug*: irpt = ",18i6) */
/* c write (iofile,56) (nodplc(irowno+i),i=1,irpts) */
/* c 56 format(" *debug*: irowno = ",18i6) */
/* c write (iofile,61) (nodplc(jcolno+i),i=1,irpts) */
/* c 61 format(" *debug*: jcolno = ",18i6) */
/* c write (iofile,66) (nodplc(jcpt +i),i=1,irpts) */
/* c 66 format(" *debug*: jcpt = ",18i6) */
/*< write (iofile,71) (nodplc(irswpf+i),i=1,nstop) >*/
io__10.ciunit = status_1.iofile;
s_wsfe(&io__10);
i_1 = cirdat_1.nstop;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&nodplc[tabinf_1.irswpf + i - 1], (ftnlen)
sizeof(integer));
}
e_wsfe();
/*< 71 format(' *debug*: irswpf = ',18i6) >*/
/*< write (iofile,76) (nodplc(irswpr+i),i=1,nstop) >*/
io__11.ciunit = status_1.iofile;
s_wsfe(&io__11);
i_1 = cirdat_1.nstop;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&nodplc[tabinf_1.irswpr + i - 1], (ftnlen)
sizeof(integer));
}
e_wsfe();
/*< 76 format(' *debug*: irswpr = ',18i6) >*/
/*< write (iofile,81) (nodplc(icswpf+i),i=1,nstop) >*/
io__12.ciunit = status_1.iofile;
s_wsfe(&io__12);
i_1 = cirdat_1.nstop;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&nodplc[tabinf_1.icswpf + i - 1], (ftnlen)
sizeof(integer));
}
e_wsfe();
/*< 81 format(' *debug*: icswpf = ',18i6) >*/
/*< write (iofile,86) (nodplc(icswpr+i),i=1,nstop) >*/
io__13.ciunit = status_1.iofile;
s_wsfe(&io__13);
i_1 = cirdat_1.nstop;
for (i = 1; i <= i_1; ++i) {
do_fio(&c__1, (char *)&nodplc[tabinf_1.icswpr + i - 1], (ftnlen)
sizeof(integer));
}
e_wsfe();
/*< 86 format(' *debug*: icswpr = ',18i6) >*/
/*< 500 return >*/
/* L500: */
return 0;
/*< end >*/
} /* dmpmat_ */
#undef cvalue
#undef nodplc